package com.easyjava.qingke.memo.command.impl;

import com.easyjava.qingke.memo.command.SystemCommand;
import com.easyjava.qingke.memo.mybatis.pojo.Label;
import com.easyjava.qingke.memo.mybatis.pojo.MemoContent;
import com.easyjava.qingke.memo.mybatis.pojo.MemoLabel;
import com.easyjava.qingke.memo.util.MemoConsole;

public class ChangeCommand extends SystemCommand {

	public void excute() {

		MemoConsole.println("1.修改备忘录内容");
		MemoConsole.println("2.修改标签");
		MemoConsole.println("3.修改备忘录上的标签");

		int id = MemoConsole.promptInt("请输入想要操作的数字：");
		while (id > 0) {
			if (1 == id) {
				changeMemoContent();
				break;
			} else if (2 == id) {
				changeLabel();
				break;
			} else if (3 == id) {
				changeMemoLabel();
				break;
			} else
				MemoConsole.println("输入的数字不存在！");
			id = MemoConsole.promptInt("请重新输入想要操作的数字：");
		}

	}

	private void changeMemoLabel() {
        
		dao.selectMemoLabel();
		
		MemoConsole.println();
		
		dao.selectLabel();
		
		MemoConsole.println();
		 
		MemoLabel memoLabel =new MemoLabel();
		
		int memoLabelId=MemoConsole.promptInt("请输入需要修改的备忘录上标签的ID：");
		while(!dao.isMemoLabelIdExists(memoLabelId)){
			MemoConsole.println("该ID不存在！");
			 memoLabelId=MemoConsole.promptInt("请重新输入需要修改的备忘录上标签的ID：");
		}
		int labelId=MemoConsole.promptInt("请输入标签ID：");
		while(!dao.isLabelIdExists(labelId)){
			MemoConsole.println("该ID不存在！");
			labelId=MemoConsole.promptInt("请重新输入标签的ID：");
		}
		memoLabel.setId(memoLabelId);
		memoLabel.setLabelId(labelId);
		
		dao.changeMemoLabel(memoLabel);
		
		
		
		

	}

	private void changeLabel() {
		dao.selectLabel();
		Label label = new Label();
		int id = MemoConsole.promptInt("请输入需要修改的标签ID：");
		while (!dao.isLabelIdExists(id)) {
			MemoConsole.println("该ID不存在！");
			id = MemoConsole.promptInt("请重新输入需要修改的标签ID：");
		}
		
		String name = MemoConsole.promptN("是否修改标签（是，请输入。否，可为空）：");
		if (!name.equals("")) {
			label.setName(name);
		}else{
			label.setName(dao.getLabelById(id).getName());
		}
		label.setId(id);
		
		dao.ChangeLabel(label);

	}

	private void changeMemoContent() {
		dao.selectMemoContent();
		MemoContent memoContent = new MemoContent();
		int id = MemoConsole.promptInt("请输入需要修改的备忘录ID：");
		while (!dao.isMemoContentIdExists(id)) {
			MemoConsole.println("该ID不存在！");
			id = MemoConsole.promptInt("请重新输入需要修改的备忘录ID：");
		}
	
		String title = MemoConsole.promptN("是否修改标题（是，请输入。否，可为空）：");
		if (!title.equals("")) {
			memoContent.setTitle(title);
		}else{
			memoContent.setTitle(dao.getMemoContentById(id).getTitle());
		}

		String content = MemoConsole.promptN("是否修改内容（是，请输入。否，可为空）：");
		if (!content.equals("")) {
			memoContent.setContent(content);
		}else{
			memoContent.setContent(dao.getMemoContentById(id).getContent());
		}
        
		memoContent.setId(id);
	

		dao.ChangeMemoContent(memoContent);
	}

}
